5 research outputs found
Loom: Query-aware Partitioning of Online Graphs
As with general graph processing systems, partitioning data over a cluster of
machines improves the scalability of graph database management systems.
However, these systems will incur additional network cost during the execution
of a query workload, due to inter-partition traversals. Workload-agnostic
partitioning algorithms typically minimise the likelihood of any edge crossing
partition boundaries. However, these partitioners are sub-optimal with respect
to many workloads, especially queries, which may require more frequent
traversal of specific subsets of inter-partition edges. Furthermore, they
largely unsuited to operating incrementally on dynamic, growing graphs.
We present a new graph partitioning algorithm, Loom, that operates on a
stream of graph updates and continuously allocates the new vertices and edges
to partitions, taking into account a query workload of graph pattern
expressions along with their relative frequencies.
First we capture the most common patterns of edge traversals which occur when
executing queries. We then compare sub-graphs, which present themselves
incrementally in the graph update stream, against these common patterns.
Finally we attempt to allocate each match to single partitions, reducing the
number of inter-partition edges within frequently traversed sub-graphs and
improving average query performance.
Loom is extensively evaluated over several large test graphs with realistic
query workloads and various orderings of the graph updates. We demonstrate
that, given a workload, our prototype produces partitionings of significantly
better quality than existing streaming graph partitioning algorithms Fennel and
LDG
Homomorphic encryption in algebraic settings
PhD ThesisCryptography methods have been around for a long time to protect sensitive data. With
data sets becoming increasingly large we wish to not only store sensitive data in public
clouds but in fact, analyse and compute there too. The idea behind homomorphic encryption
is that encryption preserves the structure and allows us to perform the same
operations on ciphertext as we would on the plaintext. A lot of the work so far restricts
the operations that can be performed correctly on ciphertexts. The goal of this thesis is
to explore methods for encryption which should greatly increase the amount of analysis
and computation that can be performed on ciphertexts.
First of all, we will consider the implications of quantum computers on cryptography.
There has already been research conducted into quantum-resistant encryption methods.
The particular method we will be interested in is still classical. We are assuming these
schemes are going to be used in a post-quantum world anyway, we look at how we can use
the quantum properties to improve the cryptosystem. More speci cally, we aim to remove
a restriction that naturally comes with the scheme restricting how many operations we
can perform on ciphertexts.
Secondly, we propose a key exchange protocol that works in a polynomial ideal setting.
We do this so that the key can be used for a homomorphic cryptography protocol. The
advantage of using key exchange over a public key system is that a large proportion of the
process needs to be carried out only once instead of needing a more complicated encryption
function to use for each piece of data. Polynomial rings are an appropriate choice of
structure for this particular type of scheme as they allow us to do everything we need. We
will examine how we can perform computation correctly on ciphertexts and address some
of the potential weaknesses of such a process.
Finally after establishing a fully homomorphic encryption system we will take a more
in-depth look at complexity. Measuring the complexity of mathematical problems is, of
course, crucial in cryptography, but the choice of measure is something we need to consider
seriously. In the nal chapter we will look at generic complexity as its gives us a good feel
for how di cult the typical instances of a problem are to solve.Engineering and Physical Sciences Research Council, Centre
for Doctoral Training in Cloud Computing for Big Dat
Loom:Query-aware partitioning of online graphs
As with general graph processing systems, partitioning data over a cluster of machines improves the scalability of graph database management systems. However, these systems will incur additional network cost during the execution of a query workload, due to inter-partition traversals. Workload-agnostic partitioning algorithms typically minimise the likelihood of any edge crossing partition boundaries. However, these partitioners are sub-optimal with respect to many workloads, especially queries, which may require more frequent traversal of specific subsets of inter-partition edges. Furthermore, they are largely unsuited to operating incrementally on dynamic, growing graphs. We present a new graph partitioning algorithm, Loom, that operates on a stream of graph updates and continuously allocates the new vertices and edges to partitions, taking into account a query workload of graph pattern expressions along with their relative frequencies. First we capture the most common patterns of edge traversals which occur when executing queries. We then compare sub-graphs, which present themselves incrementally in the graph update stream, against these common patterns. Finally we attempt to allocate each match to single partitions, reducing the number of inter-partition edges within frequently traversed sub-graphs and improving average query performance. Loom is extensively evaluated over several large test graphs with realistic query workloads and various orderings of the graph updates. We demonstrate that, given a workload, our prototype produces partitionings of significantly better quality than existing streaming graph partitioning algorithms Fennel & LDG.</p
Loom:Query-aware partitioning of online graphs
As with general graph processing systems, partitioning data over a cluster of machines improves the scalability of graph database management systems. However, these systems will incur additional network cost during the execution of a query workload, due to inter-partition traversals. Workload-agnostic partitioning algorithms typically minimise the likelihood of any edge crossing partition boundaries. However, these partitioners are sub-optimal with respect to many workloads, especially queries, which may require more frequent traversal of specific subsets of inter-partition edges. Furthermore, they are largely unsuited to operating incrementally on dynamic, growing graphs. We present a new graph partitioning algorithm, Loom, that operates on a stream of graph updates and continuously allocates the new vertices and edges to partitions, taking into account a query workload of graph pattern expressions along with their relative frequencies. First we capture the most common patterns of edge traversals which occur when executing queries. We then compare sub-graphs, which present themselves incrementally in the graph update stream, against these common patterns. Finally we attempt to allocate each match to single partitions, reducing the number of inter-partition edges within frequently traversed sub-graphs and improving average query performance. Loom is extensively evaluated over several large test graphs with realistic query workloads and various orderings of the graph updates. We demonstrate that, given a workload, our prototype produces partitionings of significantly better quality than existing streaming graph partitioning algorithms Fennel & LDG.</p